package org.easiermock;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Indicates that a method or class is a mock implementation. 
 * Can be applied to a method or a class. When applied to a class all
 * methods declared on that class are considered to be mock 
 * implementations.
 * 
 * @author Neil Fuller
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@Inherited
public @interface Mock {
	/**
	 * @return the ID of the mocked item
	 */
	String id() default "";
}
